gdb调试技巧 |
您所在的位置:网站首页 › linux gdb调试指南 › gdb调试技巧 |
由于嵌入式系统资源有限性,一般不能直接在目标系统上进行调试,通常采gdb+gdbserver的方式进行调试。Gdbserver在目标系统中运行,gdb则在宿主机上运行。要进行GDB调试,目标系统必须包括gdbserver程序,宿主机也必须安装gdb程序,一般linux发行版中都有一个可以运行的gdb,但开发人员不能直接使用该发行版中的gdb来做远程调试,而要获取gdb的源代码包,针对arm平台作一个简单配置,重新编译得到相应gdb。 一 :编译gdb 1、解压源码 tar xf gdb-8.1.tar.xz 2、建立gdb应用程序目录 mkdir gdb_lib 3、进入源码目录 cd gdb-8.1 4、配置 ./configure --target=arm-linux-uclibcgnueabi --enable-sim --enable-tui --prefix=/home/gdb_lib --target :嵌入式的交叉编译工具链 --prefix :生成gdb程序目录 5、make 6、make install 7、去掉调试信息 cd ../gdb_lib/bin strip arm-linux-uclibcgnueabi-gdb 二 、编译安装gdbserver 1、 cd gdb/gdbserver/ 2、 ./configure --target=arm-linux-uclibcgnueabi --host=arm-linux-uclibcgnueabi 3、 make 4、 gdbserver目录下就生成了一个gdbserver可执行文件,拷贝到目标开发板上. 5、 去掉调试信息 arm-linux-uclibcgnueabi-strip gdbserver 三、调试 1、开发板上: /mnt # ./gdbserver 172.16.1.109:2345 queue_arm Process queue_arm created; pid = 803 Listening on port 2345 Remote debugging from host 172.16.1.109 /*连上之后打印*/ 说明: 172.16.1.109:宿主机IP地址 2345 监听端口开 queue_arm 需要的调试程序(编译时加 -g 选项) 2、宿主机上 在gdb命令行运行 target remote 172.16.1.108:2345 [email protected]:~/test_work$ arm-linux-uclibcgnueabi-gdb queue_arm GNU gdb (GDB) 8.1 Copyright (C) 2016 Free Software Foundation, Inc. (gdb) target remote 172.16.1.108:2345 Remote debugging using 172.16.1.108:2345 Reading /lib/ld-uClibc.so.0 from remote target... warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead. Reading /lib/ld-uClibc.so.0 from remote target... Reading symbols from target:/lib/ld-uClibc.so.0...(no debugging symbols found)...done. 0xb6ff1e44 in _start () from target:/lib/ld-uClibc.so.0 (gdb) 三、总结 使用调试工具的技巧:确定位置--》寄存器值--》查看当前寄存器的状态(修改命令和参数),通常的方法: 1、printf 我们在程序中怀疑的地方插入print语句来了解程序的运行流程控制流和变量值的改变。 它的缺点:需要进行程序编辑,添加'printf'语句,必须重新编译,重新运行来获得输出。 2、Proc/sys文件系统 在某些情况下,我们需要弄清楚在一个运行在内核中的进程的状态和内存映射。为了获得这些信息,我们不需要在内核中插入任何代码。 相反,可以用 /proc 文件系统。在/proc的伪文件系统,保留系统启动运行就收集的运行时信息 (cpu信息, 内存容量等)。 3、GDB调试技巧: 3.1、运行程序 3.2、设置断点 3.3、打印变量、设置变量值 3.4、单步调试 。。。。 下载
100个gdb调试程序技巧 https://download.csdn.net/download/u010872301/10028367
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |